'VISUALIB global declarations for Visual Basic 'Constants, types, and Macros Type POINT2D x As Double y As Double End Type Type POINT2H x As Double y As Double w As Double End Type Type POINT3D x As Double y As Double z As Double End Type Type POINT3H x As Double y As Double z As Double w As Double End Type Type rect left As Integer top As Integer right As Integer bottom As Integer End Type Type Box2D xmin As Double xmax As Double ymin As Double ymax As Double End Type Type Box3D xmin As Double xmax As Double ymin As Double ymax As Double zmin As Double zmax As Double End Type 'coordinate type Global Const VL_2D = 4096 '0x1000 Global Const VL_3D = 8192 '0x2000 Global Const VL_2H = 1024 '0x0400 Global Const VL_3H = 2048 '0x0800 'viewer status flag Global Const VL_TWOD = 8 Global Const VL_THREED = 16 Global Const VL_CURRENT = 256 Global Const VL_DEFAULT = &H1000 Global Const VL_DEFAULT2D = &H1100 'light coordinate mode Global Const VL_WORLDLIGHT = 1 Global Const VL_CAMERALIGHT = 2 Global Const VL_OBJECTLIGHT = 4 'light type Global Const VL_POINTLIGHT = 256 '0x0100 Global Const VL_DISTLIGHT = 512 '0x0200 Global Const VL_SPOTLIGHT = 1024 '0x0400 Global Const VL_AREALIGHT = 2048 '0x0800 'color type Global Const VL_MATERIALAMBIENT = 1 Global Const VL_MATERIALDIFFUSE = 2 Global Const VL_MATERIALSPECULAR = 3 Global Const VL_MATERIALEMISSION = 4 Global Const VL_AMBIENTREFLECT = 5 Global Const VL_DIFFUSEREFLECT = 6 Global Const VL_SPECULARREFLECT = 7 Global Const VL_EMISSIONSTRENGTH = 8 Global Const VL_SHININESS = 9 Global Const VL_LIGHTCOLOR = 16 '0x0010 Global Const VL_AMBIENTCONTRIB = 32 '0x0020 Global Const VL_LIGHTLOCATION = 48 '0x0030 Global Const VL_LIGHTDIRECTION = 64 '0x0040 Global Const VL_LIGHTINTENSITY = 80 '0x0050 Global Const VL_SPOTLIGHTANGLE = 96 '0x0060 Global Const VL_SPOTLIGHTSPREAD = 112 '0x0070 Global Const VL_ATTENUATION = 256 '0x0100 Global Const VL_GLOBALAMBIENT = 512 '0x0200 Global Const VL_BACKGROUNDCOLOR = 768 '0x0300 Global Const VL_SHADINGMETHOD = 1024 '0x0400 Global Const VL_SHADINGMODEL = 1280 '0x0500 Global Const VL_LOCALVIEWER = 1536 '0x0600 Global Const VL_COUNTCLOCKWISE = 1792 '0x0700 Global Const VL_TWOSIDESHADE = 2048 '0x0800 Global Const VL_DEPTHBUFFER = 2304 '0x0900 Global Const VL_BACKFACEREMOVAL = 2560 '0x0A00 Global Const VL_PERTURBMATERIAL = 2816 '0x0B00 Global Const VL_PERTURBNORMAL = 3072 '0x0C00 Global Const VL_PERTURBPIXEL = 3328 '0x0D00 Global Const VL_PERTURBFACET = 3584 '0x0E00 Global Const VL_ENVIRONMENT = 3840 '0x0F00 Global Const VL_INQUIRE = -1 'projection mode Global Const VL_PROJECTIONMODE = 3 Global Const VL_PERSPECTIVE = 1 Global Const VL_ORTHOGONAL = 2 'standard pen and brush color Global Const VL_NONE = 0 Global Const VL_RED = 1 Global Const VL_GREEN = 2 Global Const VL_BLUE = 3 Global Const VL_BROWN = 4 Global Const VL_MAGENTA = 5 Global Const VL_CYAN = 6 Global Const VL_WHITE = 7 Global Const VL_GRAY = 8 Global Const VL_LIGHTRED = 9 Global Const VL_LIGHTGREEN = 10 Global Const VL_LIGHTBLUE = 11 Global Const VL_YELLOW = 12 Global Const VL_LIGHTMAGENTA = 13 Global Const VL_LIGHTCYAN = 14 Global Const VL_LIGHTGRAY = 15 Global Const VL_BLACK = 16 'shading method Global Const VL_WIREFRAME = 1 Global Const VL_SOLIDFILL = 2 Global Const VL_CONTOURSHADE = 4 Global Const VL_GOURAUDSHADE = 8 Global Const VL_PHONGSHADE = 16 Global Const VL_FLATSHADE = 32 'shading model Global Const VL_PHONGMODEL = 256 ' 0x0100 Global Const VL_SPECULARMODEL = 512 ' 0x0200 'mark type Global Const VL_NULLMARK = 0 Global Const VL_CIRCLEMARK = 1 Global Const VL_CROSSMARK = 2 Global Const VL_XMARK = 4 Global Const VL_TRIANGLEMARK = 8 Global Const VL_BOXMARK = 16 Global Const VL_DIAMONDMARK = 32 Global Const VL_HEXAGONMARK = 64 Global Const VL_OCTAGONMARK = 128 ' 0x0080 'arrow head type Global Const VL_NULLARROW = 0 Global Const VL_OPENARROW = 256 ' 0X0100 Global Const VL_CLOSEDARROW = 512 '0X0200 'position mark type Global Const VL_CROSSHAIR = 1 Global Const VL_ORIGIN = 2 'solid texture flag Global Const VL_MARBLE = 1 Global Const VL_WOODGRAIN = 2 Global Const VL_GRANITE = 4 Global Const VL_BUMPY = 8 'Function Prototypes 'Basic Functions Declare Function InitializeVisualib Lib "visualib.dll" () As Integer Declare Sub ExitVisualib Lib "visualib.dll" () Declare Sub AboutVisualib Lib "visualib.dll" () Declare Sub LicenseInfo Lib "visualib.dll" () 'utility functions 'Declare Function MessageOn Lib "visualib.dll" (ByVal flag%) As Integer 'Declare Sub ErrorMessage Lib "visualib.dll" (ByVal msg$) 'Declare Sub Message Lib "visualib.dll" (ByVal msg$) Declare Function SelectColor Lib "visualib.dll" (ByVal color&) As Long Declare Sub SetPoint2D Lib "visualib.dll" (pt As POINT2D, ByVal x#, ByVal y#) Declare Sub SetPoint3D Lib "visualib.dll" (pt As POINT3D, ByVal x#, ByVal y#, ByVal z#) Declare Sub SetPoint2H Lib "visualib.dll" (pt As POINT2H, ByVal x#, ByVal y#, ByVal w#) Declare Sub SetPoint3H Lib "visualib.dll" (pt As POINT3H, ByVal x#, ByVal y#, ByVal z#, ByVal w#) Declare Sub SetBox2D Lib "visualib.dll" (box As Box2D, ByVal xmin#, ByVal xmax#, ByVal ymin#, ByVal ymax#) Declare Sub SetBox3D Lib "visualib.dll" (box As Box3D, ByVal xmin#, ByVal xmax#, ByVal ymin#, ByVal ymax#, ByVal zmin#, ByVal zmax#) Declare Sub PenColor Lib "visualib.dll" (ByVal hdc%, ByVal color_index%) Declare Sub BrushColor Lib "visualib.dll" (ByVal hdc%, ByVal color_index%) Declare Sub TextColor Lib "visualib.dll" (ByVal hdc%, ByVal tcolor%, ByVal bcolor%) Declare Sub PaintColor Lib "visualib.dll" (ByVal hdc%, ByVal pen%, ByVal brush%, ByVal mode%) 'Declare Function CreateViewer Lib "visualib.dll" (ByVal vname$, ByVal bot%, ByVal r%, ByVal top%, ByVal l%, ByVal vtype%, ByVal mode%) As Long Declare Function DeleteViewer Lib "visualib.dll" (ByVal vid&) As Integer Declare Function NewViewer Lib "visualib.dll" (ByVal typ%) As Long Declare Function CleanViewer Lib "visualib.dll" (ByVal hdc%, ByVal vid&) As Integer Declare Sub FreeViewer Lib "visualib.dll" (ByVal vid&) Declare Function ViewerBackgroundColor Lib "visualib.dll" (ByVal vid&, ByVal c&) As Long Declare Function ViewerName Lib "visualib.dll" (ByVal hv&, ByVal nam$) As Long 'Declare Function ViewerFrame Lib "visualib.dll" (ByVal hv&, ByVal bot%, ByVal r%, ByVal top%, ByVal l%) As any Declare Function ViewerMappingMode Lib "visualib.dll" (ByVal vid&, ByVal mode%) As Integer Declare Function CopyViewer Lib "visualib.dll" (ByVal vid1&, ByVal vid2&) As Integer Declare Function ResetViewer Lib "visualib.dll" (ByVal vid&) As Integer Declare Function SelectViewer Lib "visualib.dll" (ByVal vid&) As Long 'Declare Function SetViewerName Lib "visualib.dll" (ByVal vid&, ByVal vname$) As Integer 'Declare Function GetViewerName Lib "visualib.dll" (ByVal vid&, ByVal vname$) As Integer Declare Function SetViewerFrame Lib "visualib.dll" (ByVal vid&, port As rect) As Integer Declare Function GetViewerFrame Lib "visualib.dll" (ByVal vid&, port As rect) As Integer 'Declare Function ClearViewer Lib "visualib.dll" (ByVal hdc%, ByVal vid&, ByVal color%) As Integer Declare Function displayviewerframe Lib "visualib.dll" (ByVal hdc%, ByVal vid&) As Integer Declare Function DisplayViewerName Lib "visualib.dll" (ByVal hdc%, ByVal vid&, ByVal top%) As Integer Declare Function BeginDoubleBuffer Lib "visualib.dll" (hdc%) As Integer Declare Function EndDoubleBuffer Lib "visualib.dll" (hdc%) As Integer Declare Function UpdateDoubleBuffer Lib "visualib.dll" (ByVal hdc%) As Integer '2D Functions Declare Sub Translate2D Lib "visualib.dll" (ByVal x#, ByVal y#) Declare Sub TranslateTo2D Lib "visualib.dll" (ByVal x#, ByVal y#) Declare Sub Scale2D Lib "visualib.dll" (ByVal x#, ByVal y#) Declare Sub PointScale2D Lib "visualib.dll" (ByVal x#, ByVal y#, ByVal sx#, ByVal sy#) Declare Sub TranScale2D Lib "visualib.dll" (ByVal x#, ByVal y#, ByVal sx#, ByVal sy#) Declare Sub Shear2D Lib "visualib.dll" (ByVal x#, ByVal y#, ByVal a#, ByVal u#, ByVal v#) Declare Sub Stretch2D Lib "visualib.dll" (ByVal x#, ByVal y#, ByVal a#, ByVal f#) Declare Sub Mirror2D Lib "visualib.dll" (ByVal x#, ByVal y#, ByVal a#) Declare Sub Rotate2D Lib "visualib.dll" (ByVal angle#) Declare Sub PointRotate2D Lib "visualib.dll" (ByVal x#, ByVal y#, ByVal a#) Declare Function ViewerField2D Lib "visualib.dll" (ByVal vid&, l#, bottom#, r#, top#) As Integer Declare Function Pushtransformation2d Lib "visualib.dll" (m As Any) As Integer Declare Function PopTransformation2d Lib "visualib.dll" (m As Any) As Integer Declare Sub ConcatTransformation2D Lib "visualib.dll" (m As Any, ByVal post%) Declare Sub LoadTransformation2D Lib "visualib.dll" (m As Any) Declare Function SetProjection2D Lib "visualib.dll" (ByVal vid&, ByVal l#, ByVal bottom#, ByVal r#, ByVal top#) As Integer Declare Function SetView2D Lib "visualib.dll" (ByVal vid&, ByVal x#, ByVal y#, ByVal a#) As Integer Declare Function SetWindow2D Lib "visualib.dll" (ByVal vid&, ByVal l#, ByVal b#, ByVal r#, ByVal t#) As Integer Declare Function MoveViewer2D Lib "visualib.dll" (ByVal vid&, ByVal h#, ByVal v#, ByVal localv%) As Integer Declare Function RotateViewer2D Lib "visualib.dll" (ByVal vid&, ByVal a#, ByVal localv%) As Integer Declare Function ZoomViewer2D Lib "visualib.dll" (ByVal vid&, ByVal z#) As Integer Declare Sub MoveTo2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#) Declare Sub RMoveTo2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#) Declare Sub LineTo2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#) Declare Sub RLineTo2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#) Declare Sub Line2D Lib "visualib.dll" (ByVal hdc%, ByVal x1#, ByVal y1#, ByVal x2#, ByVal y2#) Declare Sub RLine2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal dx#, ByVal dy#) Declare Sub Label2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal label$) Declare Sub MoveTo2H Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal w#) Declare Sub LineTo2H Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal w#) Declare Sub Line2H Lib "visualib.dll" (ByVal hdc%, ByVal x1#, ByVal y1#, ByVal w1#, ByVal x2#, ByVal y2#, ByVal w2#) Declare Sub Polygon2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, vertex As Any, ByVal count%) Declare Sub PolyPolygon2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, vertex As Any, polycount As Any, ByVal count%) Declare Sub Polyline2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, pts As Any, ByVal count%) Declare Sub ClosedPolyline2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, pts As Any, ByVal count%) Declare Sub Mark2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal hsize%, ByVal vsize%, ByVal head%) Declare Sub PolyMark2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, pts As Any, ByVal n%, ByVal hsize%, ByVal vsize%, ByVal head%) Declare Sub Pointer2D Lib "visualib.dll" (ByVal hdc%, ByVal x1#, ByVal y1#, ByVal x2#, ByVal y2#, ByVal l#, ByVal w#, ByVal typ%) Declare Sub Arrow2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal u#, ByVal v#, ByVal r#, ByVal l#, ByVal w#, ByVal typ%) Declare Sub Net2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, pts As Any, ByVal m%, ByVal n%) Declare Sub MarkPosition2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal size#, ByVal typ%) ' 3D Functions Declare Function ProjectionMode Lib "visualib.dll" (ByVal vid&, ByVal mode&) As Integer Declare Sub Translate3D Lib "visualib.dll" (ByVal x#, ByVal y#, ByVal z#) Declare Sub TranslateTo3D Lib "visualib.dll" (ByVal x#, ByVal y#, ByVal z#) Declare Sub Scale3D Lib "visualib.dll" (ByVal sx#, ByVal sy#, ByVal sz#) Declare Sub PointScale3D Lib "visualib.dll" (ByVal x#, ByVal y#, ByVal z#, ByVal sx#, ByVal sy#, ByVal sz#) Declare Sub Rotate3D Lib "visualib.dll" (ByVal a#, ByVal axis%) Declare Sub AxleRotate3D Lib "visualib.dll" (ref As Any, dire As Any, ByVal a#) Declare Sub Stretch3D Lib "visualib.dll" (ref As Any, dire As Any, ByVal f#) Declare Sub Shear3D Lib "visualib.dll" (ref As Any, dire As Any, ByVal u#, ByVal v#) Declare Sub Mirror3D Lib "visualib.dll" (ref As Any, dire As Any) Declare Function PushTransformation3D Lib "visualib.dll" (m As Any) As Integer Declare Function PopTransformation3D Lib "visualib.dll" (m As Any) As Integer Declare Sub ConcatTransformation3D Lib "visualib.dll" (m As Any, ByVal post%) Declare Sub LoadTransformation3D Lib "visualib.dll" (m As Any) Declare Function ResetProjection3D Lib "visualib.dll" (ByVal vid&) As Integer Declare Function SetProjection3D Lib "visualib.dll" (ByVal vid&, ByVal l#, ByVal b#, ByVal r#, ByVal t#, ByVal f%, ByVal b#, ByVal mode%) As Integer Declare Function SetPerspective Lib "visualib.dll" (ByVal vid&, ByVal fovy#, ByVal asp#, ByVal zmin#, ByVal zmax#) As Integer Declare Function SetView3D Lib "visualib.dll" (ByVal vid&, ByVal ex#, ByVal ey#, ByVal ez#, ByVal ax#, ByVal ay#, ByVal az#, ByVal twist#) As Integer Declare Function SetPolarView Lib "visualib.dll" (ByVal vid&, ByVal ax#, ByVal ay#, ByVal az#, ByVal dist#, ByVal azim#, ByVal inc#, ByVal twist#) As Integer Declare Function ViewerLocation Lib "visualib.dll" (ByVal vid&, x#, y#, z#) As Integer Declare Function ViewerDirection Lib "visualib.dll" (ByVal vid&, x#, y#, z#) As Integer Declare Function ViewerField3D Lib "visualib.dll" (ByVal vid&, l#, b#, r#, t#, f#, b#) As Integer Declare Function MoveViewer3D Lib "visualib.dll" (ByVal vid&, ByVal h#, ByVal v#, ByVal b#, ByVal localv%) As Integer Declare Function RotateViewer3D Lib "visualib.dll" (ByVal vid&, ByVal a#, ByVal axis%, ByVal localv%) As Integer Declare Function ZoomViewer3D Lib "visualib.dll" (ByVal vid&, ByVal z#) As Integer Declare Sub MoveTo3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#) Declare Sub LineTo3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#) Declare Sub RMoveTo3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#) Declare Sub RLineTo3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#) Declare Sub MoveTo3H Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#, ByVal w#) Declare Sub LineTo3H Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#, ByVal w#) Declare Sub Line3D Lib "visualib.dll" (ByVal hdc%, ByVal x1#, ByVal y1#, ByVal z1#, ByVal x2#, ByVal y2#, ByVal z2#) Declare Sub RLine3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#, ByVal dx#, ByVal dy#, ByVal dz#) Declare Sub PolyArrow3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, dire As Any, ByVal n%, ByVal r#, ByVal l#, ByVal w#, ByVal htype%) Declare Sub Label3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#, ByVal label$) Declare Function Mark3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#, ByVal hsize%, ByVal vsize%, ByVal typ%) As Integer Declare Sub PolyMark3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, pts As Any, ByVal n%, ByVal hsize%, ByVal vsize%, ByVal htype%) Declare Sub Polygon3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, vertex As Any, ByVal count%) Declare Sub PolyPolygon3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, vertex As Any, polycount As Any, ByVal count%) Declare Sub Polyline3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, pts As Any, ByVal count%) Declare Sub ClosedPolyline3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, pts As Any, ByVal count%) Declare Sub MarkPosition3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#, ByVal size#, ByVal typ%) Declare Sub Pointer3D Lib "visualib.dll" (ByVal hdc%, ByVal x1#, ByVal y1#, ByVal z1#, ByVal x2#, ByVal y2#, ByVal z2#, ByVal l#, ByVal w#, ByVal typ%) Declare Sub Arrow3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal z#, ByVal u#, ByVal v#, ByVal w#, ByVal r#, ByVal l#, ByVal t#, ByVal typ%) Declare Sub Net3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, pts As Any, ByVal m%, ByVal n%) 'Shading Functions Declare Sub ResetShader Lib "visualib.dll" () 'depth buffer functions Declare Function SetDepthBuffer Lib "visualib.dll" (ByVal hview&) As Integer Declare Function SelectDepthBuffer Lib "visualib.dll" (ByVal hview&) As Integer Declare Function FreeDepthBuffer Lib "visualib.dll" (ByVal hview&) As Integer Declare Sub ClearDepthBuffer Lib "visualib.dll" (ByVal v%) ' light functions Declare Function CopyLight Lib "visualib.dll" (ByVal lid1&, ByVal lid2&) As Integer Declare Function ResetLight Lib "visualib.dll" (ByVal lid&) As Integer 'Declare Function CreateLight Lib "visualib.dll" (ByVal lname$, ByVal typ%) As Long Declare Function DeleteLight Lib "visualib.dll" (ByVal lid&) As Integer Declare Function SelectLight Lib "visualib.dll" (ByVal lid&) As Long 'Declare Function CopyLModel Lib "visualib.dll" (ByVal lmid1%, ByVal lmid2%) As Integer 'Declare Function CreateLModel Lib "visualib.dll" (ByVal lmname$) As Integer 'Declare Sub DeleteLModel Lib "visualib.dll" (ByVal lmid%) 'Declare Function SelectLModel Lib "visualib.dll" (ByVal lmid%) As Integer Declare Function LightType Lib "visualib.dll" (ByVal lid&) As Integer Declare Function SwitchLight Lib "visualib.dll" (ByVal lid&, ByVal status&) As Integer Declare Function SetLightLocation Lib "visualib.dll" (ByVal lid&, ByVal x#, ByVal y#, ByVal z#) As Integer Declare Function GetLightLocation Lib "visualib.dll" (ByVal lid&, x#, y#, z#) As Integer Declare Function SetLightDirection Lib "visualib.dll" (ByVal lid&, ByVal x#, ByVal y#, ByVal z#) As Integer Declare Function GetLightDirection Lib "visualib.dll" (ByVal lid&, x#, y#, z#) As Integer Declare Function SetSpotlightSpread Lib "visualib.dll" (ByVal lid&, ByVal angle%, ByVal spread%) As Integer Declare Function GetSpotlightSpread Lib "visualib.dll" (ByVal lid&, angle%, spread%) As Integer 'material functions 'Declare Function CreateMaterial Lib "visualib.dll" (ByVal mname$) As Long Declare Sub DeleteMaterial Lib "visualib.dll" (ByVal maid&) Declare Function SelectMaterial Lib "visualib.dll" (ByVal maid&) As Long Declare Function CopyMaterial Lib "visualib.dll" (ByVal mid1&, ByVal mid2&) As Integer Declare Function ResetMaterial Lib "visualib.dll" (ByVal maid&) As Integer Declare Function AmbientColor Lib "visualib.dll" (ByVal color&) As Long Declare Function LightColor Lib "visualib.dll" (ByVal hl&, ByVal color&) As Long Declare Function MaterialSpecular Lib "visualib.dll" (ByVal hm&, ByVal color&) As Long Declare Function MaterialAmbient Lib "visualib.dll" (ByVal hm&, ByVal color&) As Long Declare Function MaterialDiffuse Lib "visualib.dll" (ByVal hm&, ByVal color&) As Long Declare Function MaterialEmission Lib "visualib.dll" (ByVal hm&, ByVal color&) As Long Declare Function MaterialShininess Lib "visualib.dll" (ByVal hm&, ByVal sh&) As Integer Declare Function LightIntensity Lib "visualib.dll" (ByVal hl&, ByVal intens&) As Integer Declare Function NewLight Lib "visualib.dll" (ByVal typ%) As Long Declare Function NewMaterial Lib "visualib.dll" () As Long Declare Function LightCoordinateType Lib "visualib.dll" (ByVal lid&, ByVal typ&) As Integer Declare Function LightName Lib "visualib.dll" (ByVal lid&) As String Declare Function MaterialName Lib "visualib.dll" (ByVal hm&) As String ' shading parameter functions 'Declare Function ShadingOption Lib "visualib.dll" (ByVal id%, ByVal opt%, ByVal status&) As Integer 'Declare Function ShadingColor Lib "visualib.dll" Alias "_ShadingColor" (ByVal id%, ByVal typ%, ByVal colo&) As Long 'Declare Function ShadingFactor Lib "visualib.dll" (ByVal id%, ByVal typ%, ByVal f#) As Integer 'Declare Function ShadingParameter Lib "visualib.dll" (ByVal id%, ByVal typ%, ByVal inquire%, param As Any) As Integer Declare Sub SetAttenuation Lib "visualib.dll" (ByVal k0#, ByVal k1#, ByVal k2#) Declare Function LocalViewer Lib "visualib.dll" (ByVal status&) As Integer Declare Function DepthBuffer Lib "visualib.dll" (ByVal status&) As Integer Declare Function TwoSideShading Lib "visualib.dll" (ByVal status&) As Integer Declare Function BackFaceRemoval Lib "visualib.dll" (ByVal status&) As Integer Declare Function PolygonDirection Lib "visualib.dll" (ByVal status&) As Integer Declare Function ShadingMethod Lib "visualib.dll" (ByVal status&) As Integer Declare Function ShadingModel Lib "visualib.dll" (ByVal status&) As Integer Declare Function SetRGBPalette Lib "visualib.dll" () As Integer 'shading primitive functions Declare Function ShadeFacet Lib "visualib.dll" Alias "_ShadeFacet" (ByVal hdc%, normal As Any, ByVal typ%, vertex As Any, ByVal count%, param As Any) As Integer Declare Function ShadePolygon Lib "visualib.dll" Alias "_ShadePolygon" (ByVal hdc%, normal As Any, ByVal typ%, pts As Any, ByVal count%) As Integer Declare Function ShadePolyPolygon Lib "visualib.dll" Alias "_ShadePolyPolygon" (ByVal hdc%, normal As Any, ByVal typ%, vertex As Any, pcount As Any, ByVal count%) As Integer Declare Function ShadePolyFacet Lib "visualib.dll" (ByVal hdc%, polyfacet As Any) As Integer Declare Function ShadingPreview Lib "visualib.dll" (ByVal hdc%, rect As Any, ByVal r#, ByVal d#) As Integer ' programmable shader functions Declare Sub GetPixelPosition Lib "visualib.dll" (x%, y%) Declare Sub GetPixelViewNormal Lib "visualib.dll" (normal As Any) Declare Sub GetPixelWorldNormal Lib "visualib.dll" (normal As Any) Declare Sub GetPixelObjectNormal Lib "visualib.dll" (normal As Any) Declare Sub GetPixelViewCoordinate Lib "visualib.dll" (coord As Any) Declare Sub GetPixelWorldCoordinate Lib "visualib.dll" (coord As Any) Declare Sub GetPixelObjectCoordinate Lib "visualib.dll" (coord As Any) Declare Sub GetPixelViewCameraAxis Lib "visualib.dll" (vaxis As Any) Declare Sub GetPixelWorldCameraAxis Lib "visualib.dll" (vaxis As Any) Declare Sub GetPixelObjectCameraAxis Lib "visualib.dll" (vaxis As Any) Declare Function SolidTexture Lib "visualib.dll" (ByVal typ%) As Integer 'Image Mapping and Printing Functions Global Const VL_FLUSHTOP = 1 Global Const VL_FLUSHBOTTOM = 2 Global Const VL_FLUSHLEFT = 4 Global Const VL_FLUSHRIGHT = 8 Global Const VL_HORZFIT = &H10 Global Const VL_VERTFIT = &H20 Global Const VL_ALLFIT = &H30 Global Const VL_HORZCENTER = &H40 Global Const VL_VERTCENTER = &H80 Global Const VL_HORZSCALED = &H100 Global Const VL_VERTSCALED = &H200 Global Const VL_BESTFIT = &H400 Global Const VL_USE31APIS = &H800 Global Const VL_MILLIMETER = &H1000 Global Const VL_CENTIMETER = &H2000 Global Const VL_MARKCORNER = &H4000 Global Const VL_MARKPAGE = &H8000 Declare Function ReadDIBFile Lib "visualib.dll" (ByVal fname$, hdib As Any) As Integer Declare Function ScreenToDIB Lib "visualib.dll" (rect As Any) As Integer Declare Function WriteDIBFile Lib "visualib.dll" (ByVal fname$, ByVal hdib%) As Integer Declare Function SetPrintRect Lib "visualib.dll" (ByVal hdc%, rect As Any, ByVal mode%, ByVal x#, ByVal y#, ByVal w#, ByVal h#, ByVal bw%, ByVal bh%) As Integer Declare Sub GetScreenRect Lib "visualib.dll" (ByVal hwnd%, ByVal withframe%, rect As Any) Declare Function PrintImage Lib "visualib.dll" (ByVal hdib%, ByVal mode%, ByVal x#, ByVal y#, ByVal w#, ByVal h#) As Integer Declare Function PrintDrawing Lib "visualib.dll" (draw As Any, ByVal mode%, ByVal x#, ByVal y#, ByVal w#, ByVal h#) As Integer Declare Function ImageMap2D Lib "visualib.dll" (ByVal hdc%, ByVal hdib%, ByVal typ%, vertex As Any) As Integer Declare Function ImageMap3D Lib "visualib.dll" (ByVal hdc%, ByVal hdib%, ByVal typ%, vertex As Any) As Integer ' text parameters Global Const VL_TEXT_HEIGHT = 1 Global Const VL_TEXT_ASPECT = 2 Global Const VL_TEXT_THICKNESS = 4 Declare Function TextParameter Lib "visualib.dll" (ByVal typ%, ByVal param#) As Integer Declare Function SelectFont Lib "visualib.dll" () As Integer Declare Function setfont Lib "visualib.dll" (lplf As Any) As Integer Declare Function Text2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal a#, ByVal text$) As Integer Declare Function Text3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal a#, ByVal text$) As Integer Declare Function SolidText Lib "visualib.dll" (ByVal hdc%, ByVal text$) As Integer ' 2D Curve Functions Declare Sub QBezierCurve2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any) Declare Sub QBSplineCurve2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) Declare Sub QNURBSCurve2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%, knot As Any) Declare Sub BezierCurve2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any) Declare Sub HermitCurve2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any) Declare Sub BSplineCurve2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) Declare Sub NURBSCurve2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%, knot As Any) Declare Sub SplineInterp2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) Declare Sub BSplineCurveClosed2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) Declare Sub NURBSCurveClosed2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%, knot As Any) Declare Sub CatmullRomSpline2D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) '3D Curve Functions Declare Sub QBezierCurve3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any) Declare Sub QBSplineCurve3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) Declare Sub QNURBSCurve3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%, knot As Any) Declare Sub BezierCurve3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any) Declare Sub HermitCurve3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any) Declare Sub BSplineCurve3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) Declare Sub NURBSCurve3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%, knot As Any) Declare Sub SplineInterp3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) Declare Sub BSplineCurveClosed3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) Declare Sub NURBSCurveClosed3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%, knot As Any) Declare Sub CatmullRomSpline3D Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal n%) Declare Sub Spring Lib "visualib.dll" (ByVal hdc%, ByVal n%, ByVal r#, ByVal h#) Declare Function CircleSide Lib "visualib.dll" (ByVal side%) As Integer Declare Sub TransfVertex Lib "visualib.dll" (ByVal typ%, ByVal x#, ByVal y#, ByVal a#, ByVal sx#, ByVal sy#, vertex As Any, ByVal n%) Declare Function RectangleVertex Lib "visualib.dll" (ByVal typ%, ByVal x1#, ByVal y1#, ByVal x2#, ByVal y2#, vertex As Any) As Integer Declare Function BoxVertex Lib "visualib.dll" (ByVal typ%, ByVal x#, ByVal y#, ByVal t#, ByVal sx#, ByVal sy#, vertex As Any) As Integer Declare Function NgonVertex Lib "visualib.dll" (ByVal typ%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%, vertex As Any) As Integer Declare Function FlowerVertex Lib "visualib.dll" (ByVal typ%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%, ByVal r#, vertex As Any) As Integer Declare Function StarVertex Lib "visualib.dll" (ByVal typ%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%, vertex As Any) As Integer Declare Function ArcVertex Lib "visualib.dll" (ByVal typ%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%, ByVal a#, ByVal b#, vertex As Any) As Integer Declare Function PieVertex Lib "visualib.dll" (ByVal typ%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%, ByVal a#, ByVal b#, vertex As Any) As Integer Declare Function RingVertex Lib "visualib.dll" (ByVal typ%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%, ByVal a#, ByVal b#, ByVal w#, vertex As Any) As Integer Declare Function RoseVertex Lib "visualib.dll" (ByVal typ%, ByVal x#, ByVal y#, ByVal a#, ByVal r#, ByVal m%, ByVal n%, vertex As Any) As Integer ' 2D Primitive Functions Declare Sub Rectangle2D Lib "visualib.dll" (ByVal hdc%, ByVal x1#, ByVal y1#, ByVal x2#, ByVal y2#) Declare Sub Box2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal w#, ByVal h#) Declare Sub Disk2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#) Declare Sub Pie2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal a#, ByVal b#) Declare Sub Ring2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal a#, ByVal b#, ByVal w#) Declare Sub Chord2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal a#, ByVal b#) Declare Sub Ngon2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%) Declare Sub Flower2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%, ByVal ratio#) Declare Sub Star2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%) Declare Sub Arc2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal a#, ByVal b#) Declare Sub Rose2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal r#, ByVal m%, ByVal n%) Declare Sub Spiral2D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal a#, ByVal b#, ByVal r#, ByVal dr#) ' 3D Primitive Functions Declare Sub Rectangle3D Lib "visualib.dll" (ByVal hdc%, ByVal x1#, ByVal y1#, ByVal x2#, ByVal y2#) Declare Sub Box3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal sx#, ByVal sy#) Declare Sub Ring3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal a#, ByVal b#, ByVal w#) Declare Sub Disk3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#) Declare Sub Pie3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal a#, ByVal b#) Declare Sub Chord3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal a#, ByVal b#) Declare Sub Ngon3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%) Declare Sub Flower3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%, ByVal r#) Declare Sub Star3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal n%) Declare Sub Arc3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal rx#, ByVal ry#, ByVal a#, ByVal b#) Declare Sub Rose3D Lib "visualib.dll" (ByVal hdc%, ByVal x#, ByVal y#, ByVal t#, ByVal r#, ByVal m, ByVal n%) Declare Sub Spiral3D Lib "visualib.dll" (ByVal hdc%, ByVal a#, ByVal b#, ByVal r#, ByVal dr#, ByVal h#) Declare Sub Spring3D Lib "visualib.dll" (ByVal hdc%, ByVal a#, ByVal b#, ByVal r#, ByVal h#) ' 3D Surface Functions Declare Function BezierSurface Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal ns%, ByVal nt%) As Integer Declare Function HermitSurface Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal ns%, ByVal nt%) As Integer Declare Function BSplineSurface Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal Sc%, ByVal Tc%, ByVal ns%, ByVal nt%) As Integer Declare Function NURBSSurface Lib "visualib.dll" (ByVal hdc%, ByVal typ%, poly As Any, ByVal Sc%, ByVal Tc%, Skn As Any, Tkn As Any, ByVal ns%, ByVal nt%) As Integer Declare Function CoonsPatch Lib "visualib.dll" (ByVal hdc%, ByVal typ%, pts As Any, ByVal nu%, ByVal nv%) As Integer ' Solid Primitive Functions Declare Function Cube Lib "visualib.dll" (ByVal hdc%, ByVal w#, ByVal l#, ByVal h#) As Integer Declare Function Cylinder Lib "visualib.dll" (ByVal hdc%, ByVal rx#, ByVal ry#, ByVal h#) As Integer Declare Function Cone Lib "visualib.dll" (ByVal hdc%, ByVal rx#, ByVal ry#, ByVal h#) As Integer Declare Function Ellipsoid Lib "visualib.dll" (ByVal hdc%, ByVal a#, ByVal b#, ByVal c#) As Integer Declare Function Sphere Lib "visualib.dll" (ByVal hdc%, ByVal r#) As Integer Declare Function HemiSphere Lib "visualib.dll" (ByVal hdc%, ByVal r#, ByVal h#) As Integer Declare Function SolidStar Lib "visualib.dll" (ByVal hdc%, ByVal n%, ByVal rx#, ByVal ry#, ByVal h#) As Integer Declare Function SolidFlower Lib "visualib.dll" (ByVal hdc%, ByVal n%, ByVal r#, ByVal rx#, ByVal ry#, ByVal h#) As Integer Declare Function SolidPie Lib "visualib.dll" (ByVal hdc%, ByVal rx#, ByVal ry#, ByVal h#, ByVal a#, ByVal b#) As Integer Declare Function Frustum Lib "visualib.dll" (ByVal hdc%, ByVal bw#, ByVal bl#, ByVal tw#, ByVal tl#, ByVal h#) As Integer Declare Function Ridge Lib "visualib.dll" (ByVal hdc%, ByVal w#, ByVal l#, ByVal h#, ByVal r#) As Integer Declare Function Prism Lib "visualib.dll" (ByVal hdc%, ByVal typ%, basev As Any, ByVal n%, ByVal h#) As Integer Declare Function Pyramid Lib "visualib.dll" (ByVal hdc%, basev As Any, ByVal n%, tip As Any) As Integer Declare Function WedgedCone Lib "visualib.dll" (ByVal hdc%, ByVal rx#, ByVal ry#, ByVal h#, ByVal a#, ByVal b#) As Integer Declare Function WedgedCylinder Lib "visualib.dll" (ByVal hdc%, ByVal rx#, ByVal ry#, ByVal h#, ByVal tr#, ByVal a#, ByVal b#) As Integer Declare Function WedgedSphere Lib "visualib.dll" (ByVal hdc%, ByVal rx#, ByVal ry#, ByVal rz#, ByVal a1#, ByVal a2#, ByVal b1#, ByVal b2#) As Integer Declare Function WedgedTorus Lib "visualib.dll" (ByVal hdc%, ByVal r1#, ByVal r2#, ByVal a1#, ByVal a2#, ByVal b1#, ByVal b2#) As Integer Declare Function Torus Lib "visualib.dll" (ByVal hdc%, ByVal r1#, ByVal r2#) As Integer Declare Function SolidRing Lib "visualib.dll" (ByVal hdc%, ByVal rtop#, ByVal rbot#, ByVal t#, ByVal h#, ByVal a#, ByVal b#, ByVal ratio#) As Integer Declare Function Tube Lib "visualib.dll" (ByVal hdc%, ByVal rtop#, ByVal rbot#, ByVal t#, ByVal h#) As Integer Declare Function Sweep Lib "visualib.dll" (ByVal hdc%, transf As Any, ByVal nstep%, vertex As Any, normals As Any, ByVal npts%, ByVal mode%, snormal As Any) As Integer Declare Function Revolution Lib "visualib.dll" (ByVal hdc%, vertex As Any, normal As Any, ByVal n%, ByVal a#, ByVal mode%, snormal As Any) As Integer Declare Function Tetrahedron Lib "visualib.dll" (ByVal hdc%, ByVal r#) As Integer Declare Function Octahedron Lib "visualib.dll" (ByVal hdc%, ByVal r#) As Integer Declare Function Dodecahedron Lib "visualib.dll" (ByVal hdc%, ByVal r#) As Integer Declare Function Icosahedron Lib "visualib.dll" (ByVal hdc%, ByVal r#) As Integer